#ifndef MAZECONTROLLER_H
#define MAZECONTROLLER_H



#include <QObject>
#include "imazemodel.h"

class QGraphicsScene;
class MazeView;
class PathFinder;


class MazeController : public QObject
{
    Q_OBJECT
public:

    explicit MazeController(QGraphicsScene *scene, QObject *parent = nullptr);
    virtual ~MazeController();

signals:

public slots:
    void slotMouseClickPos(QPointF pos);
    void slotMouseMovePos(QPointF pos);

    void slotStartDemo(int width, int height);

private:
    void deleteMembers();
    QPoint converMousePos(QPointF pos);
    QGraphicsScene  *m_scene;
    IMazeModel      *m_model;
    MazeView        *m_view;

    QPoint          m_pathStart;
    QPoint          m_pathStop;
    volatile int    m_clickCnt;
};

#endif // MAZECONTROLLER_H
